package com.xcl.util;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class JwtUtil {

    private static final String KEY ="xcl";

    //生成令牌（TOken）
    public static String genToken(Map<String,Object> claims){

       return JWT.create()
                .withClaim("claims", claims)//设置载荷的数据
                .withExpiresAt(new Date(System.currentTimeMillis()+4*60*60*1000))//设置过期时间
                .sign(Algorithm.HMAC256(KEY));

    }

    //解密令牌（TOken）

        public static Map<String,Object> parseToken(String token){
            try{
            return JWT.require(Algorithm.HMAC256(KEY)).build().verify(token).getClaim("claims").asMap();
        }catch (Exception e){
            return null;
        }
    }




    public static void main(String[] args) {
        Map<String, Object> claims = new HashMap<>();
        claims.put("userId",1);
        claims.put("password","cnyh");

        String token = genToken(claims);
        System.out.println(token);

        Map<String, Object> map = parseToken(token);
        System.out.println(map);
    }
}
